# Maintainer: George Rawlinson <grawlinson@archlinux.org>

pkgname=drone-runner-docker
pkgver=1.8.3
pkgrel=1
pkgdesc='Drone pipeline runner that executes builds inside Docker containers'
arch=('loong64' 'x86_64')
url='https://github.com/drone-runners/drone-runner-docker'
license=('custom:Polyform-Small-Business-1.0.0' 'custom:Polyform-Free-Trial-1.0.0')
depends=('glibc' 'docker')
makedepends=('git' 'go')
optdepends=('drone: for a local Drone instance')
options=('!lto')
_commit='ecfb097ea73c200a6817946120660252e9afdcac'
source=(
  "$pkgname::git+$url.git#commit=$_commit"
  'systemd.service'
  'sysusers.conf'
  'tmpfiles.conf'
)
sha512sums=('SKIP'
            'eb92c3ad379153953adb07d064d1f33ba52015df2fb045412c57d38c5000f74ce1a0f8ea6042ffd1a5dcf3adbc5535b19067488cc5fd351d78c014effbbd17e8'
            'fd328a189b7144e1cc519cf24863de2c4552c4df29ebb30cad3d100163577bd3083cdadb8eef7fa6970149f5a470490fd26a47ddf2a8d502cd38e977599159a1'
            'e0d22286f58388e0393c0368bd5ea56099718ba772805913056c5251597d3887e013ba5fc9243d856d61d3b531dfd18087dd7aafe43c5857074ad6caceeee255')
b2sums=('SKIP'
        'a76e0c190fcecbd99be68e9ead11c6cda27cf30045c9585356032982d1ecf053f2e8ed5b2a640403bd6a214eccfa50ec425bf34a284966a315a6754272133e99'
        '327ef1f6158fc970d37b41d40e3b2f2c937f701ac4d7dda846b48ddf517d3f0e39ce360ae13aef8539587e71f861593941da3be32df032f6d65deb7927c8da9b'
        '02b6ca4f1bdbaf968c81a2aab25efdb76d53590baadfa4c239239bc2b39bf09f8266775fc8addcf3a51fa48bd0a1ecfdb34c674b7355fbe5476cd53ae1780504')

pkgver() {
  cd "$pkgname"

  git describe --tags | sed 's/^v//'
}

prepare() {
  cd "$pkgname"

  # create directory for build output
  mkdir -p build

  # download dependencies
  go mod download
}

build() {
  cd "$pkgname"

  # set Go flags
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"

  go build -v \
    -trimpath \
    -buildmode=pie \
    -mod=readonly \
    -modcacherw \
    -ldflags "-linkmode external -extldflags \"${LDFLAGS}\"" \
    -o build \
    .
}

check() {
  cd "$pkgname"

  go test -v ./...
}

package() {
  # systemd integration
  install -vDm644 systemd.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
  install -vDm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
  install -vDm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"

  cd "$pkgname"

  # binary
  install -vDm755 -t "$pkgdir/usr/bin" build/*

  # licenses
  install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" licenses/* LICENSE.md

  # documentation
  install -vDm644 -t "$pkgdir/usr/share/doc/$pkgname" README.md CHANGELOG.md
}
